<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>CAN FD</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/CAN_FD"> <link href="./mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/ext.math.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-CAN_FD rootpage-CAN_FD skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">CAN FD</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr">
<p><b>CAN FD</b> (Controller Area Network Flexible Data-Rate) is a <a href="Communication_protocol" title="Communication protocol">data-communication protocol</a> used for broadcasting sensor data and control information on 2 wire interconnections between different parts of electronic <a href="Instrumentation" title="Instrumentation">instrumentation</a> and <a href="Control_system" title="Control system">control system</a>. This protocol is used in modern high performance vehicles.
</p><p>CAN FD is an extension to the original <a href="CAN_bus" title="CAN bus">CAN bus</a> protocol that was specified in ISO 11898-1. CAN FD is the second generation of CAN protocol developed by Bosch.<sup id="cite_ref-:0_1-0" class="reference"><a href="#cite_note-:0-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> The basic idea to overclock part of the frame and to oversize the payload dates back to 1999.<sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> Developed in 2011 and released in 2012 by <a href="Robert_Bosch_GmbH" class="mw-redirect" title="Robert Bosch GmbH">Bosch</a>, CAN FD<sup id="cite_ref-CAN-FD_spec_3-0" class="reference"><a href="#cite_note-CAN-FD_spec-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup> was developed to meet the need to increase the data transfer rate up to 5 times faster and with larger frame/message sizes for use in modern automotive <a href="Electronic_control_unit" title="Electronic control unit">Electronic Control Units</a>.
</p><p>As in the classical CAN, CAN FD protocol is designed to reliably transmit and receive sensor data, control commands and to detect data errors between electronic sensor devices, controllers and <a href="Microcontroller" title="Microcontroller">microcontrollers</a>. Although CAN FD was primarily designed for use in high performance vehicle ECUs, the pervasiveness of classical CAN in the different industries will lead into inclusion of this improved data-communication protocol in a variety of other applications as well, such as in electronic systems used in robotics, defense, industrial automation, underwater vehicles, medical equipment, avionics, down-hole drilling sensors, etc.
</p>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="CAN_FD_versus_classical_CAN">CAN FD versus classical CAN</h2></div>
<p>The primary difference between the classical CAN (Controller Area Network) and CAN FD is the Flexible Data (FD). Using CAN FD, Electronic Control Units (ECUs) are enabled to dynamically switch between different data rates and longer or shorter messages. Faster data speed and more data capacity enhancements results in several system operational advantages compared to classical CAN. Commands issued by the executing ECU software reach the output controller much faster. CAN FD is typically used in high performance ECUs of modern vehicles. A modern vehicle can have more than 70 ECUs that use CAN FD to exchange information over the CAN bus when the engine is running or when the vehicle is moving.
</p><p>On a CAN bus, a <i>frame</i> is the basic unit of messaging. For a classic CAN bus, a frame consists of an 11-bit identifier along with an 8-byte message payload. For CAN FD, a frame is labeled with a 29-bit identifier and carries a 64-byte message payload. Frames with 11-bit identifiers are said to be in FD Base Frame Format (FDBF) and frames with 29-bit identifiers are referred to as FD Extended Frame Format (FEFF). While payload data rates of 5-8 Mbit/s are possible in CAN FD, overall data transfer rates depend on the total length of the bus network and the <a href="Transceivers" class="mw-redirect" title="Transceivers">transceivers</a> used to generate and detect bus signals. Additionally, arbitration data rates are limited to 1 Mbit/s to maintain compatibility with classical CAN devices. The CAN FD protocol specification provides improved error detection<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup> in received CAN messages and enhanced flexibility of data transfer speeds to account for differences in sensor polling rates. The CAN bus consists of a shared pair of wires onto which electronic sensors, controller units, and ECUs are connected and is used to exchange information between units operating periodically or on demand. The total number of units connected, the length of the CAN bus wires, and additional electromagnetic factors determine the fastest data transfer rate possible for a given CAN bus. All versions of the CAN protocol are designed with robust collision resolution that depends on signal propagation time, network topology, and the number of units on the bus. To minimize message collision and reduce costly error correction, many CAN bus configurations may limit their data transfer rate well below the bus's theoretical maximum speed.
</p><p>CAN-FD bus load that was developed by "De Andrade's" equation based on Tindel's equation.<sup id="cite_ref-:0_1-1" class="reference"><a href="#cite_note-:0-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup>
</p><p>β = τ/ω (β = Busload), (τ = time of slow bits plus faster bits), ω (time in seconds of measurement).
τ = Ts + Tf
</p><p>CAN-FD protocol defines five different error detection mechanisms: Two of them work at the bit level, and the other three at the message level.
They are:
</p>
<pre> - (1) Bit Monitoring,
- (2) Bit Stuffing,
- (3) Frame Check,
- (4) Acknowledgement Check and
- (5) <a href="Cyclic_redundancy_check" title="Cyclic redundancy check">Cyclic Redundancy Check.</a> There are two options of CRC which should be denoted as for CRC length of 17 (Data Length 0-16 bytes) or CRC length of 21 bits (Data Length 17–64) bytes.
</pre>
<p>Where the transmission time of the (fixed-size) header is given by:
</p><p><span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \textstyle T_{s}=\left({\frac {\left({\text{SOF}}+{\text{ID}}+r1+{\text{IDE}}+{\text{EDL}}+r0+{\frac {\text{BRS}}{2}}+{\frac {\text{CRCdel}}{2}}\right)\cdot 1.2}{t_{x}}}\right)+{\frac {{\text{ACK}}+{\text{DEL}}+{\text{EOF}}+{\text{IFS}}}{t_{x}}}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mstyle displaystyle="false" scriptlevel="0">
<msub>
<mi>T</mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>s</mi>
</mrow>
</msub>
<mo>=</mo>
<mrow>
<mo>(</mo>
<mrow class="MJX-TeXAtom-ORD">
<mfrac>
<mrow>
<mrow>
<mo>(</mo>
<mrow>
<mrow class="MJX-TeXAtom-ORD">
<mtext>SOF</mtext>
</mrow>
<mo>+</mo>
<mrow class="MJX-TeXAtom-ORD">
<mtext>ID</mtext>
</mrow>
<mo>+</mo>
<mi>r</mi>
<mn>1</mn>
<mo>+</mo>
<mrow class="MJX-TeXAtom-ORD">
<mtext>IDE</mtext>
</mrow>
<mo>+</mo>
<mrow class="MJX-TeXAtom-ORD">
<mtext>EDL</mtext>
</mrow>
<mo>+</mo>
<mi>r</mi>
<mn>0</mn>
<mo>+</mo>
<mrow class="MJX-TeXAtom-ORD">
<mfrac>
<mtext>BRS</mtext>
<mn>2</mn>
</mfrac>
</mrow>
<mo>+</mo>
<mrow class="MJX-TeXAtom-ORD">
<mfrac>
<mtext>CRCdel</mtext>
<mn>2</mn>
</mfrac>
</mrow>
</mrow>
<mo>)</mo>
</mrow>
<mo>⋅<!-- ⋅ --></mo>
<mn>1.2</mn>
</mrow>
<msub>
<mi>t</mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>x</mi>
</mrow>
</msub>
</mfrac>
</mrow>
<mo>)</mo>
</mrow>
<mo>+</mo>
<mrow class="MJX-TeXAtom-ORD">
<mfrac>
<mrow>
<mrow class="MJX-TeXAtom-ORD">
<mtext>ACK</mtext>
</mrow>
<mo>+</mo>
<mrow class="MJX-TeXAtom-ORD">
<mtext>DEL</mtext>
</mrow>
<mo>+</mo>
<mrow class="MJX-TeXAtom-ORD">
<mtext>EOF</mtext>
</mrow>
<mo>+</mo>
<mrow class="MJX-TeXAtom-ORD">
<mtext>IFS</mtext>
</mrow>
</mrow>
<msub>
<mi>t</mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>x</mi>
</mrow>
</msub>
</mfrac>
</mrow>
</mstyle>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle \textstyle T_{s}=\left({\frac {\left({\text{SOF}}+{\text{ID}}+r1+{\text{IDE}}+{\text{EDL}}+r0+{\frac {\text{BRS}}{2}}+{\frac {\text{CRCdel}}{2}}\right)\cdot 1.2}{t_{x}}}\right)+{\frac {{\text{ACK}}+{\text{DEL}}+{\text{EOF}}+{\text{IFS}}}{t_{x}}}}</annotation>
</semantics>
</math></span><img src="./2f25cc86d40b181f162511fd4263dd2b9e39abb3.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -3.171ex; width:67.68ex; height:7.509ex;" alt="{\displaystyle \textstyle T_{s}=\left({\frac {\left({\text{SOF}}+{\text{ID}}+r1+{\text{IDE}}+{\text{EDL}}+r0+{\frac {\text{BRS}}{2}}+{\frac {\text{CRCdel}}{2}}\right)\cdot 1.2}{t_{x}}}\right)+{\frac {{\text{ACK}}+{\text{DEL}}+{\text{EOF}}+{\text{IFS}}}{t_{x}}}}" loading="lazy"></span>
</p><p>The fields are explained in <a href="#field_names">the table below</a>. Here 1.2 is taken to be the factor of the worst case bit stuffing,<sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> which means the computation shall be increased by 25%. It is considered BRS and CRCdel divided by 2, because they are exactly in the shift of bit rate transition.
</p><p>The transmission time of the payload is calculated as:
</p><p><span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \textstyle T_{f}={\frac {\left(\left(D_{f}+{\text{ESI}}+{\text{DLC}}+{\frac {\text{BRS}}{2}}+{\frac {\text{CRCdel}}{2}}\right)\cdot 1.2\right)+{\text{CRC}}+{\text{SB}}}{t_{Y}}}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mstyle displaystyle="false" scriptlevel="0">
<msub>
<mi>T</mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>f</mi>
</mrow>
</msub>
<mo>=</mo>
<mrow class="MJX-TeXAtom-ORD">
<mfrac>
<mrow>
<mrow>
<mo>(</mo>
<mrow>
<mrow>
<mo>(</mo>
<mrow>
<msub>
<mi>D</mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>f</mi>
</mrow>
</msub>
<mo>+</mo>
<mrow class="MJX-TeXAtom-ORD">
<mtext>ESI</mtext>
</mrow>
<mo>+</mo>
<mrow class="MJX-TeXAtom-ORD">
<mtext>DLC</mtext>
</mrow>
<mo>+</mo>
<mrow class="MJX-TeXAtom-ORD">
<mfrac>
<mtext>BRS</mtext>
<mn>2</mn>
</mfrac>
</mrow>
<mo>+</mo>
<mrow class="MJX-TeXAtom-ORD">
<mfrac>
<mtext>CRCdel</mtext>
<mn>2</mn>
</mfrac>
</mrow>
</mrow>
<mo>)</mo>
</mrow>
<mo>⋅<!-- ⋅ --></mo>
<mn>1.2</mn>
</mrow>
<mo>)</mo>
</mrow>
<mo>+</mo>
<mrow class="MJX-TeXAtom-ORD">
<mtext>CRC</mtext>
</mrow>
<mo>+</mo>
<mrow class="MJX-TeXAtom-ORD">
<mtext>SB</mtext>
</mrow>
</mrow>
<msub>
<mi>t</mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>Y</mi>
</mrow>
</msub>
</mfrac>
</mrow>
</mstyle>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle \textstyle T_{f}={\frac {\left(\left(D_{f}+{\text{ESI}}+{\text{DLC}}+{\frac {\text{BRS}}{2}}+{\frac {\text{CRCdel}}{2}}\right)\cdot 1.2\right)+{\text{CRC}}+{\text{SB}}}{t_{Y}}}}</annotation>
</semantics>
</math></span><img src="./1eda3a54062a3cdbc8560bbb083042912cc8c8df.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -1.505ex; width:43.555ex; height:5.676ex;" alt="{\displaystyle \textstyle T_{f}={\frac {\left(\left(D_{f}+{\text{ESI}}+{\text{DLC}}+{\frac {\text{BRS}}{2}}+{\frac {\text{CRCdel}}{2}}\right)\cdot 1.2\right)+{\text{CRC}}+{\text{SB}}}{t_{Y}}}}" loading="lazy"></span>
</p><p>Here SB signifies the stuffing bits (5 bits for packets smaller than 6 bytes and 6 bits for packets bigger than 6 bytes). CRC is also size-dependent, set to 17 bits for packets smaller than 6 bytes and to 21 for larger packets. Df represents the CAN-FD payload size which may be 0 to 8, 12, 16, 20, 24, 32, 48, 64 Bytes. t_X is the transmission bandwidth for the message header (up to 1 Mbit/s).
</p><p><br>
CAN FD also has decreased the number of undetected errors through increases in the performance of the <a href="Cyclic_redundancy_check" title="Cyclic redundancy check">CRC</a>-algorithm.<sup id="cite_ref-8" class="reference"><a href="#cite_note-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup> In addition, CAN FD is compatible with existing CAN 2.0 networks, allowing the new protocol to function on the same network as classical CAN.<sup id="cite_ref-9" class="reference"><a href="#cite_note-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup> CAN FD bit rate can be up to 8 Mbit/s with the right CAN SIC (Signal Improvement Capability) Transceiver and so up to 8 times faster than classical CAN with 1 Mbit/s data phase.
</p><p>Due to higher communication speed, CAN FD constraints are tougher in terms of line parasitic capacitance. Therefore, all components on the line have seen their "capacitance" budget reduced compared to regular <a href="CAN_bus" title="CAN bus">CAN bus</a>. That is the reason why <a href="Semiconductor" title="Semiconductor">semiconductor</a> suppliers have released new components approved by car makers. This approval reflects the need for interoperability between all CAN FD systems. Indeed, selected ESD protection components are compatible with all transceivers (CAN or CAN FD) and withstand ISO7637-3.<sup id="cite_ref-10" class="reference"><a href="#cite_note-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup>
</p><p>Despite a higher stand-off voltage≤ (37 V), devices for truck applications must also comply with the low capacitance requirement (3.5 pF).<sup id="cite_ref-11" class="reference"><a href="#cite_note-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Data_frame">Data frame</h2></div>
<p>The data frame used for actual data transmission have two message formats:
</p>
<ul><li>Base frame format: with 11 identifier bits</li>
<li>Extended frame format: with 29 identifier bits</li></ul>
<p>The frame format is as follows: The bit values are described for CAN-LO signal.
</p>
<table class="wikitable" id="field_names">
<tbody><tr>
<th>Field name</th>
<th>Length (bits)</th>
<th>Purpose
</th></tr>
<tr>
<td>Start-of-frame (SOF)</td>
<td>1</td>
<td>Denotes the start of frame transmission
</td></tr>
<tr>
<td>Identifier (ID)</td>
<td>11</td>
<td>A (unique) identifier which also represents the message priority
</td></tr>
<tr>
<td>Stuff bit</td>
<td>1</td>
<td>A bit of the opposite polarity to maintain synchronisation; see <a href="CAN_Bus" class="mw-redirect" title="CAN Bus">CAN Bus#Bit stuffing</a>
</td></tr>
<tr>
<td>Remote Request Substitution (RRS)</td>
<td>1</td>
<td>
</td></tr>
<tr>
<td>Identifier extension bit (IDE)</td>
<td>1</td>
<td>
</td></tr>
<tr>
<td>FD Format Indicator (FDF)</td>
<td>1</td>
<td>Must be recessive (1) for CAN FD frames and dominant (0) for classic CAN.
</td></tr>
<tr>
<td>Reserved bit in FD frames (res)</td>
<td>1</td>
<td>
</td></tr>
<tr>
<td>Bit Rate Switch (BRS)</td>
<td>1</td>
<td>
</td></tr>
<tr>
<td>Error State Indicator (ESI)</td>
<td>1</td>
<td>
</td></tr>
<tr>
<td>Data length code (DLC)</td>
<td>4</td>
<td>Number of bytes of data (0–64 bytes)<sup id="cite_ref-12" class="reference"><a href="#cite_note-12"><span class="cite-bracket">[</span>a<span class="cite-bracket">]</span></a></sup>
</td></tr>
<tr>
<td>Data field</td>
<td>0–512 (0-64 bytes)</td>
<td>Data to be transmitted (length in bytes dictated by DLC field)
</td></tr>
<tr>
<td>Stuff count</td>
<td>4</td>
<td>
</td></tr>
<tr>
<td>CRC</td>
<td>17-21</td>
<td>CRC-21 when payload is greater than 16 bytes, else CRC-17 <a href="Cyclic_redundancy_check#CRC-15-CAN" title="Cyclic redundancy check">Cyclic redundancy check</a>
</td></tr>
<tr>
<td>CRC delimiter</td>
<td>1</td>
<td>Must be recessive (1)
</td></tr>
<tr>
<td>FSB</td>
<td>6-7</td>
<td>Fixed stuffing-bits in CRC Field: for every 4 bits theres 1 stuffing bit (6 stuffing bits for Stuff count and CRC-17, 7 for Stuffcount and CRC-21)
</td></tr>
<tr>
<td>ACK slot</td>
<td>1</td>
<td>Transmitter sends recessive (1) and any receiver can assert a dominant (0)
</td></tr>
<tr>
<td>ACK delimiter</td>
<td>1</td>
<td>Must be recessive (1)
</td></tr>
<tr>
<td>End-of-frame (EOF)</td>
<td>7</td>
<td>Must be recessive (1)
</td></tr>
<tr>
<td>Inter-frame spacing (IFS)</td>
<td>3</td>
<td>Must be recessive (1)
</td></tr></tbody></table>
<style data-mw-deduplicate="TemplateStyles:r1239543626">
/* start https://en.wikipedia.org/ */
.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}
/* end https://en.wikipedia.org/ */
</style><div class="reflist reflist-lower-alpha">
<div class="mw-references-wrap"><ol class="references">
<li id="cite_note-12"><span class="mw-cite-backlink"><b><a href="#cite_ref-12">^</a></b></span> <span class="reference-text">The values 0-8 indicate 0-8 bytes like classic CAN. The values 9-15 are translated to a value between 12-64 which is the actual length of the data field: 9→12 10→16 11→20 12→24 13→32 14→48 15→64</span>
</li>
</ol></div></div>
<p><br>
</p>
<div class="mw-heading mw-heading2"><h2 id="CAN_&_CAN_FD_TP_Headers">CAN & CAN FD TP Headers</h2></div>
<table class="wikitable" style="text-align:center">
<caption>CAN + CANFD -TP Header
</caption>
<tbody><tr>
<th></th>
<th></th>
<th>7 .. 4 (byte 0)</th>
<th>3 .. 0 (byte 0)</th>
<th>15 .. 8 (byte 1)</th>
<th>23..16 (byte 2)
</th>
<th>(byte 3)
</th>
<th>(byte 4)
</th>
<th>(byte 5)
</th>
<th>(byte 6)</th>
<th>....
</th></tr>
<tr>
<th rowspan="2">Single Frame (SF)
</th>
<td>according to CAN
</td>
<td rowspan="2">0</td>
<td>size (1..7)</td>
<td colspan="7">Data
</td></tr>
<tr>
<td>CAN-FD specific
</td>
<td>0
</td>
<td>size (0..62)
</td>
<td colspan="6">Data
</td></tr>
<tr>
<th rowspan="2">First Frame (FF)
</th>
<td>according to CAN
</td>
<td rowspan="2">1
</td>
<td colspan="2">size (8..4095)
</td>
<td colspan="6">Data
</td></tr>
<tr>
<td>CAN-FD specific
</td>
<td>0
</td>
<td>0
</td>
<td colspan="4">size (4bytes ~4 GB)
</td>
<td colspan="2">Data
</td></tr>
<tr>
<th>Consecutive Frame (CF)
</th>
<td>according to CAN
</td>
<td>2
</td>
<td>index (0..15)
</td>
<td colspan="7">Data
</td></tr>
<tr>
<th><a href="ISO_15765-2" title="ISO 15765-2">Flow Control Frame (FC)</a>
</th>
<td>according to CAN
</td>
<td>3</td>
<td><a href="ISO_15765-2" title="ISO 15765-2">FC flag (0,1,2)</a></td>
<td>Block size</td>
<td>ST
</td>
<td colspan="5">Unused
</td></tr></tbody></table>
<p>The above table explains the transfer protocol defined for CAN + CANFD, based on <a href="ISO_15765-2" title="ISO 15765-2">ISO 15765-2</a> (ISO-TP), used for sending packets of data longer than what fits in a CAN frame.
</p>
<ul><li>if the first byte is 0x00, then it's a CAN-FD SF, and the second byte specifies the size of the data.</li>
<li>if the first byte is 0x01-0x07, then it's a normal CAN SF with this byte indicating the size of 1-7 bytes data.</li>
<li>if the first 2 bytes are 0x1000, then it's a CAN-FD FF, and the following 4 bytes specifies the size of data in high byte first order. This virtually enables to send ~4 GB (approx.) data in CAN FD.</li>
<li>if the first 2 bytes are 0x1008-0x1FFF, then it's a normal CAN FF with a size of 0x008-0xFFF.</li></ul>
<div class="mw-heading mw-heading2"><h2 id="CAN_Transceiver">CAN Transceiver</h2></div>
<p>CAN FD can use Transceiver for classical CAN and CAN FD. Additionally there are new CAN SiC (Signal improvement Capability) Transceiver with 5 to 8 Mbit/s data rate.<sup id="cite_ref-13" class="reference"><a href="#cite_note-13"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="CAN_FD_in_action">CAN FD in action</h2></div>
<p>In 2017, CAN FD was predicted to be used in most vehicles by 2019–2020.
</p>
<div class="mw-heading mw-heading2"><h2 id="CAN_FD_supporters">CAN FD supporters</h2></div>
<p>Some of the companies behind the new standard include <a href="STMicroelectronics" title="STMicroelectronics">STMicroelectronics</a>, <a href="Infineon_Technologies" title="Infineon Technologies">Infineon</a>,<sup id="cite_ref-14" class="reference"><a href="#cite_note-14"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup> <a href="NXP_Semiconductors" title="NXP Semiconductors">NXP</a>, <a href="Texas_Instruments" title="Texas Instruments">Texas Instruments</a>, Kvaser, <a href="Daimler_AG" class="mw-redirect" title="Daimler AG">Daimler</a> and <a href="General_Motors" title="General Motors">GM</a>.
</p><p>CAN FD forms a basic data link layer in some higher Layer protocols like <a href="CANopen" title="CANopen">CANopen</a> as CANopen FD and <a href="J1939" class="mw-redirect" title="J1939">J1939</a> and supported by different companies with protocol stacks.
</p>
<div class="mw-heading mw-heading2"><h2 id="CAN_XL">CAN XL</h2></div>
<p>CAN XL is the 3rd version of the CAN data link layer after classical CAN and CAN FD. CAN FD is compatible to CAN XL.
</p>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<div class="reflist">
<div class="mw-references-wrap mw-references-columns"><ol class="references">
<li id="cite_note-:0-1"><span class="mw-cite-backlink">^ <a href="#cite_ref-:0_1-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-:0_1-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">
/* start https://en.wikipedia.org/ */
.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("./mw/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("./mw/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("./mw/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("./mw/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}
/* end https://en.wikipedia.org/ */
</style><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20170202024101/https://www.can-cia.org/can-knowledge/can/can-fd/">"CAN in Automation (CiA): CAN FD - The basic idea"</a>. <i>www.can-cia.org</i>. Archived from <a rel="nofollow" class="external text" href="https://www.can-cia.org/can-knowledge/can/can-fd/">the original</a> on 2017-02-02<span class="reference-accessdate">. Retrieved <span class="nowrap">2017-01-25</span></span>.</cite></span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-2">^</a></b></span> <span class="reference-text"><cite id="CITEREFCenaValenzano1999" class="citation journal cs1">Cena, G.; Valenzano, A. (1999). <span class="id-lock-subscription" title="Paid subscription required"><a rel="nofollow" class="external text" href="https://digital-library.theiet.org/content/journals/10.1049/el_19991289">"Overclocking of controller area networks"</a></span>. <i>Electronics Letters</i>. <b>35</b> (22): 1923. <a href="Bibcode_(identifier)" class="mw-redirect" title="Bibcode (identifier)">Bibcode</a>:<a rel="nofollow" class="external text" href="https://ui.adsabs.harvard.edu/abs/1999ElL....35.1923C">1999ElL....35.1923C</a>. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1049%2Fel%3A19991289">10.1049/el:19991289</a>.</cite></span>
</li>
<li id="cite_note-CAN-FD_spec-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-CAN-FD_spec_3-0">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20151211125301/http://www.bosch-semiconductors.de/media/ubk_semiconductors/pdf_1/canliteratur/can_fd_spec.pdf">"Bosch CAN FD Specification Version 1.0 (released April 17th, 2012)"</a> <span class="cs1-format">(PDF)</span>. Archived from <a rel="nofollow" class="external text" href="http://www.bosch-semiconductors.de/media/ubk_semiconductors/pdf_1/canliteratur/can_fd_spec.pdf">the original</a> <span class="cs1-format">(PDF)</span> on 2015-12-11<span class="reference-accessdate">. Retrieved <span class="nowrap">2019-01-02</span></span>.</cite></span>
</li>
<li id="cite_note-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-4">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://can-newsletter.org/uploads/media/raw/604de101b0ecaed387518831d32b044e.pdf">"CAN FD and the CRC issue"</a> <span class="cs1-format">(PDF)</span>.</cite></span>
</li>
<li id="cite_note-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-5">^</a></b></span> <span class="reference-text"><cite id="CITEREFde_AndradeHodelJustoLaganá2018" class="citation journal cs1">de Andrade, R.; Hodel, K. N.; Justo, J. F.; Laganá, A. M.; Santos, M. M.; Gu, Z. (2018). <a rel="nofollow" class="external text" href="https://doi.org/10.1109%2FACCESS.2018.2826522">"Analytical and Experimental Performance Evaluations of CAN-FD Bus"</a>. <i>IEEE Access</i>. <b>6</b>: <span class="nowrap">21287–</span>21295. <a href="Bibcode_(identifier)" class="mw-redirect" title="Bibcode (identifier)">Bibcode</a>:<a rel="nofollow" class="external text" href="https://ui.adsabs.harvard.edu/abs/2018IEEEA...621287D">2018IEEEA...621287D</a>. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.1109%2FACCESS.2018.2826522">10.1109/ACCESS.2018.2826522</a></span>.</cite>.</span>
</li>
<li id="cite_note-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-6">^</a></b></span> <span class="reference-text"><cite id="CITEREFDe_Andrade2014" class="citation thesis cs1">De Andrade, Ricardo (2014). <a rel="nofollow" class="external text" href="https://www.teses.usp.br/teses/disponiveis/3/3140/tde-06082015-111553/publico/Dissertacao_Ricardo_rev2_17.pdf"><i>Sistemas de comunicação CAN FD: modelamento por software e análise temporal</i></a> <span class="cs1-format">(PDF)</span> (Master's thesis). Universidade de São Paulo.</cite></span>
</li>
<li id="cite_note-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-7">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://lore.kernel.org/linux-can/CAMZ6RqKQw702HPjBTNJdBfL8yhkn5vDVDfn6dbrVMv7SX6NO2w@mail.gmail.com/">"Re: [PATCH] can: length: add definitions for frame lengths in bits - Vincent MAILHOL"</a>. <i>lore.kernel.org</i>.</cite></span>
</li>
<li id="cite_note-8"><span class="mw-cite-backlink"><b><a href="#cite_ref-8">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20190416214729/https://www.kvaser.com/wp-content/uploads/2016/10/comparing-can-fd-with-classical-can.pdf">"Archived copy"</a> <span class="cs1-format">(PDF)</span>. Archived from <a rel="nofollow" class="external text" href="https://www.kvaser.com/wp-content/uploads/2016/10/comparing-can-fd-with-classical-can.pdf">the original</a> <span class="cs1-format">(PDF)</span> on 2019-04-16<span class="reference-accessdate">. Retrieved <span class="nowrap">2017-01-25</span></span>.</cite><span class="cs1-maint citation-comment"><code class="cs1-code">{{cite web}}</code>: CS1 maint: archived copy as title (link)</span></span>
</li>
<li id="cite_note-9"><span class="mw-cite-backlink"><b><a href="#cite_ref-9">^</a></b></span> <span class="reference-text"><cite class="citation news cs1"><a rel="nofollow" class="external text" href="http://www.electronicsweekly.com/news/high-speed-can-fd-bus-is-coming-to-cars-says-microchip-2015-10/">"High speed CAN FD bus is coming to cars, says Microchip"</a>. <i>Electronics Weekly</i>. 2015-10-26<span class="reference-accessdate">. Retrieved <span class="nowrap">2017-01-26</span></span>.</cite></span>
</li>
<li id="cite_note-10"><span class="mw-cite-backlink"><b><a href="#cite_ref-10">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.st.com/content/st_com/en/products/protection-devices/automotive-protection-devices/automotive-dataline-esd-protection/esdcan03-2bwy.html">"CAN bus ESD protection for 12V systems"</a>. <i>STMicroelectronics-ESDCAN03-2BWY</i>.</cite></span>
</li>
<li id="cite_note-11"><span class="mw-cite-backlink"><b><a href="#cite_ref-11">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.st.com/content/st_com/en/products/protection-devices/automotive-protection-devices/automotive-dataline-esd-protection/esdcan05-2bwy.html">"CAN bus ESD protection for 24V systems"</a>. <i>STMicroelectronics-ESDCAN05-2BWY</i>.</cite></span>
</li>
<li id="cite_note-13"><span class="mw-cite-backlink"><b><a href="#cite_ref-13">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.nxp.com/products/interfaces/can-transceivers/can-signal-improvement:CAN-FD#/">"CAN Signal Improvement"</a>. <i>www.nxp.xom</i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20200804173040/https://www.nxp.com/products/interfaces/can-transceivers/can-signal-improvement:CAN-FD">Archived</a> from the original on 2020-08-04<span class="reference-accessdate">. Retrieved <span class="nowrap">February 2,</span> 2022</span>.</cite></span>
</li>
<li id="cite_note-14"><span class="mw-cite-backlink"><b><a href="#cite_ref-14">^</a></b></span> <span class="reference-text"><cite id="CITEREFKelling2014" class="citation news cs1">Kelling, Ursula (April 2014). <a rel="nofollow" class="external text" href="https://can-newsletter.org/uploads/media/raw/88000d1061d24e686756dac2155a5853.pdf">"Infineon Microcontrollers"</a> <span class="cs1-format">(PDF)</span>. <i>CAN Newsletter Online</i><span class="reference-accessdate">. Retrieved <span class="nowrap">June 2,</span> 2019</span>.</cite></span>
</li>
</ol></div></div>
<div class="mw-heading mw-heading2"><h2 id="External_links">External links</h2></div>
<ul><li><a rel="nofollow" class="external text" href="https://www.kvaser.com/comparing-can-fd-classical-can/">Comparing CAN FD with Classical CAN</a></li>
<li><a rel="nofollow" class="external text" href="https://www.controleng.com/articles/can-fd-from-theory-to-practice/">CAN FD: From Theory to Practice</a></li>
<li><a rel="nofollow" class="external text" href="http://blog.st.com/can-bus-protection-stmicroelectronics-protects-what-protects-you/">CAN Bus Protection : Protect What Protects You</a></li>
<li><a rel="nofollow" class="external text" href="https://web.archive.org/web/20231015041632/https://www.can-cia.org/fileadmin/resources/documents/proceedings/2015_hartkopp.pdf">Linux and ISO 15765-2 with CAN FD - Details of how (payload) data length differs between CAN and CANFD</a></li>
<li><a rel="nofollow" class="external text" href="https://s3.eu-central-1.amazonaws.com/cancia-de/documents/proceedings/slides/hartkopp_slides_15icc.pdf">Linux and ISO 15765-2 with CAN FD 15th international CAN Conference 2015</a></li>
<li><a rel="nofollow" class="external text" href="https://www.autopi.io/blog/can-fd-explained/">CAN FD Explained</a></li></ul></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2025-05-24" href="https://en.wikipedia.org/wiki/?title=CAN_FD&oldid=1292043299">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
</body></html>